import Vue from 'vue'
import Vuex from 'vuex'

// 导入封装了本地存储的模块
import { getItem, setItem } from '@/utils/storage.js'

Vue.use(Vuex)

// 自定义token名称
const TOKEN_KEY = 'TOUTIAO_USER'

export default new Vuex.Store({
  // 仓库
  state: {
    /**
     * 1.获取本地存储的token
     * 2.JSON.parse()--将数据转化为json格式
     * 3.getItem()--获取
     */
    user: getItem(TOKEN_KEY)
    // user: JSON.parse(window.localStorage.getItem(TOKEN_KEY))
    // user: null
  },
  mutations: {
    setUser(state, data) {
      state.user = data
      /**
       * 1.将数据存到本地存储--为了数据持久化
       * 2.JSON.stringify()--将数据转化为字符串
       * 3.setItem()--设置
       * */
      setItem(TOKEN_KEY, state.user)
      // window.localStorage.setItem(TOKEN_KEY, JSON.stringify(state.user))
    }
  },
  actions: {},
  modules: {},
  getters: {
    // 用户头像的计算属性
    userAvatar(state) {
      // 默认的头像地址
      let imgSrc = 'http://www.liulongbin.top:8000/uploads/1639890060054.blob'

      // 如果用户信息对象中包含 photo 属性的值，则为 imgSrc 重新赋值
      if (state.user.photo) {
        imgSrc = state.user.photo
      }

      return imgSrc
    }
  }
})
